$(function() {
	init();
});
//页面初始化调用方法
function init() {
	// 1.初始化Table
	var elementTable = new TableInit();
	elementTable.Init();
	selectElementId = "1";
	// 1.初始化Table2
	var attributeTable = new TableInit2();
	attributeTable.Init();
}

var TableInit = function() {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$("#elementTables").bootstrapTable({
			url : '../../../caseElement/queryCaseElementList', // 请求后台的URL（*）
			method : "POST",
			contentType : "application/x-www-form-urlencoded",
			toolbar : '#toolbar',
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortable : true, // 是否启用排序
			checkboxHeader : false,// 是否显示表头的全选
			queryParamsType : "undefined", // 默认limit
			queryParams : oTableInit.queryParams,// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : 1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			pageList : [ 10, 25, 50, 100 ], // 可供选择的每页的行数（*）
			sortName : "leve,type,display_order",
			sortOrder : "",
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch : true,
			showColumns : false, // 是否显示所有的列
			minimumCountColumns : 2, // 最少允许的列数
			clickToSelect : true, // 是否启用点击选中行
			height : 550, // 行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			uniqueId : "ID", // 每一行的唯一标识，一般为主键列
			showToggle : false, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false,
			singleSelect:true,
			onLoadSuccess:function(){
	            $('.bootstrap-table tr td').each(function () {
	                $(this).attr("title", $(this).text());
	                $(this).css("cursor", 'pointer');
	                
	            });
	        } ,
	        onDblClickRow: function(item, $element) { //双击事件，item为该行数据
	        	selectElementId = item.id;
	        	 $('.info').removeClass('info');
                 $($element).addClass('info');//添加选中行的样式
	        	queryBytableId('attributeTables');
			},
			responseHandler : function(res) {
				return getTableData(res);
			}, // 是否显示父子表
			columns : [ 
				{
				field : 'ID',
				visible : false
			}, {
				field : 'name',
				title : '元素名称',
				width: 80
			}, {
				field : 'code',
				title : '元素编号',
                sortable: true,//是否可排序
				width: 60
			}]
		});
	};
	// 得到查询的参数
	oTableInit.queryParams = function(params) {
		var temp = { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的pageSize,
			pageSize : params.pageSize, // 页面大小
			pageNumber : params.pageNumber, // 页码
			sortName : params.sortName,
			sortOrder : params.sortOrder,
			name : $("#seachName").val().trim(),
			code : $("#seachCode").val().trim()
		};
		return temp;
	};
	return oTableInit;
};

var ButtonInit = function() {
	var oInit = new Object();
	oInit.Init = function() {};
	return oInit;
};
function statusFormatter(value, row, index) {
	if (row['status'] == "1") {
		return "启用";
	} else {
		return "禁用";
	}
}
function leveFormatter(value, row, index) {
	if (row['leve'] == "1") {
		return "基本控件";
	} else if (row['leve'] == "2"){
		return "逻辑控件";
	}else if (row['leve'] == "3"){
		return "条件控件";
	}else{
		return "未知类型";
	}
}
// 弹出新增元素信息
function add() {
	BootstrapDialog.show({
		title : '绑定元素属性信息',
		draggable: true,
		closable: false,
		message : $("<form class='form-inline' style='height:530px;width:750px;overflow-y: auto;'></form>")
				.load('blandAttribulte.html'),
		onshown : function() {
			// 初始化新增页面组织机构的值
			showAddElements();
		},
		buttons : [ {
			icon : 'glyphicon glyphicon-check',
			label : '确定',
			cssClass : 'btn-primary',
			autospin : true,
			action : function(dialogRef) {
				var selectCases = $("#addelementTables").bootstrapTable('getSelections');
				var sendDataArray = [];
				for(var i = 0;i<selectCases.length;i++){
					var obj = new Object;
					obj.elementId = selectElementId;
					obj.attributeId = selectCases[i].id;
					sendDataArray.push(obj);
				}
				console.log(sendDataArray);
				$.ajax({
					url : "../../../caseElement/addElementAttributeRel",
					type : "post",
					data :{elementAttributeRel:JSON.stringify(sendDataArray)},
					dataType : "json",
					success : function(data) {
						if (data.flag == 0) {
							success(data.content);
							$("#attributeTables").bootstrapTable('refresh');
						} else {
							warning(data.errorInfo);
						}
					},
					error : function() {
						danger(data.errorInfo);
					}
				});
			
			}
		}, {
			label : '取消',
			action : function(dialogRef) {
				dialogRef.close();
			}
		} ]
	});
}

function showAddElements(){
	var addElementTable = new AddElementTableInit();
	addElementTable.Init();
}
var AddElementTableInit = function() {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$("#addelementTables").bootstrapTable({
			url : '../../../caseElement/queryElementAttributeList', // 请求后台的URL（*）
			method : "POST",
			contentType : "application/x-www-form-urlencoded",
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortable : true, // 是否启用排序
			checkboxHeader : false,// 是否显示表头的全选
			queryParamsType : "undefined", // 默认limit
			queryParams : oTableInit.queryParams,// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : 1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			sortName : "CODE",
			sortOrder : "",
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch : true,
			showColumns : true, // 是否显示所有的列
			minimumCountColumns : 2, // 最少允许的列数
			clickToSelect : true, // 是否启用点击选中行
			height : 550, // 行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			uniqueId : "ID", // 每一行的唯一标识，一般为主键列
			showToggle : true, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false,
			singleSelect:false,
			onLoadSuccess:function(){
	            $('.bootstrap-table tr td').each(function () {
	                $(this).attr("title", $(this).text());
	                $(this).css("cursor", 'pointer');
	                
	            });
	        } ,
			responseHandler : function(res) {
				return getTableData(res);
			}, // 是否显示父子表
			columns : [ {
				checkbox : true,
				width: 20
			}, {
				field : 'ID',
				visible : false
			}, {
				field : 'name',
				title : '属性名称',
				width: 80
			}, {
				field : 'code',
				title : '属性编号',
                sortable: true,//是否可排序
				width: 80
			}]
		});
	};
	// 得到查询的参数
	oTableInit.queryParams = function(params) {
		var temp = { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的pageSize,
			pageSize : params.pageSize, // 页面大小
			pageNumber : params.pageNumber, // 页码
			sortName : params.sortName,
			sortOrder : params.sortOrder,
			name : $("#seachAttributeName").val().trim(),
			code : $("#seachAttributeCode").val().trim()
		};
		return temp;
	};
	return oTableInit;
};

var TableInit2 = function() {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$("#attributeTables").bootstrapTable({
			url : '../../../caseElement/queryElementAttributeByElementId', // 请求后台的URL（*）
			method : "POST",
			contentType : "application/x-www-form-urlencoded",
			toolbar : '#toolbar',
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortable : true, // 是否启用排序
			checkboxHeader : false,// 是否显示表头的全选
			queryParamsType : "undefined", // 默认limit
			queryParams : oTableInit.queryParams,// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : 1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			pageList : [ 10, 25, 50, 100 ], // 可供选择的每页的行数（*）
			sortName : "DISPLAY_ORDER",
			sortOrder : "",
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch : true,
			showColumns : true, // 是否显示所有的列
			minimumCountColumns : 2, // 最少允许的列数
			clickToSelect : true, // 是否启用点击选中行
			height : 550, // 行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			uniqueId : "ID", // 每一行的唯一标识，一般为主键列
			showToggle : true, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false,
			singleSelect:false,
			onLoadSuccess:function(){
	            $('.bootstrap-table tr td').each(function () {
	                $(this).attr("title", $(this).text());
	                $(this).css("cursor", 'pointer');
	                
	            });
	        } ,
			responseHandler : function(res) {
				return getTableData(res);
			}, // 是否显示父子表
			columns : [ {
				checkbox : true,
				width: 20
			}, {
				field : 'ID',
				visible : false
			}, {
				field : 'attributeName',
				title : '属性名称',
				width: 80
			}, {
				field : 'attributeCode',
				title : '属性编号',
				width: 80
			}, {
				field : 'displayOrder',
				title : '显示序号',
				width: 80
			}, {
				field : 'paramOrder',
				title : '参数序号',
				width: 80
			}, {
				field : 'createUser',
				title : '创建人',
				width: 50
			}, {
				field : 'createTime',
				title : '创建时间',
				width: 150
			}, {
				field : 'updateUser',
				title : '最后修改人',
				width: 60
			}, {
				field : 'updateTime',
				title : '最后修改时间',
				width: 150
			}]
		});
	};
	// 得到查询的参数
	oTableInit.queryParams = function(params) {
		var temp = { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的pageSize,
			pageSize : params.pageSize, // 页面大小
			pageNumber : params.pageNumber, // 页码
			sortName : params.sortName,
			sortOrder : params.sortOrder,
			elementId : selectElementId
		};
		return temp;
	};
	return oTableInit;
};
// 弹出编辑角色页面
function edite() {
	var selectElements = $("#attributeTables").bootstrapTable('getSelections');
	console.log(selectElements);
	if (selectElements.length == 0) {
		var content = "请选择要修改的元素信息!";
		info(content);
	} else {
		BootstrapDialog.show({
			title : '修改元素信息',
			draggable: true,
			closable: false,
			message : $("<form class='form-inline' style='height:160px'></form>")
					.load('elementEdite.html'),
			onshown : function() {
				// 初始化修改页面值
				$("#name").val(selectElements[0].attributeName);
				$("#code").val(selectElements[0].attributeCode);
				$("#defaulteValue").val(selectElements[0].displayOrder);
				$("#range").val(selectElements[0].paramOrder);
			},
			buttons : [ {
				icon : 'glyphicon glyphicon-check',
				label : '确定',
				cssClass : 'btn-primary',
				autospin : true,
				action : function(dialogRef) {
					selectElements[0].displayOrder = $("#defaulteValue").val();
					selectElements[0].paramOrder = $("#range").val();
					console.log(selectElements[0]);
					$.ajax({
						url : "../../../caseElement/updateElementAttributeRel",
						type : "post",
						data :{elementAttributeRel:JSON.stringify(selectElements[0])},
						dataType : "json",
						success : function(data) {
							if (data.flag == 0) {
								success(data.content);
								$("#attributeTables").bootstrapTable('refresh');
							} else {
								warning(data.errorInfo);
							}
						},
						error : function() {
							danger(data.content);
						}
					});
				}
			}, {
				label : '取消',
				action : function(dialogRef) {
					dialogRef.close();
				}
			} ]
		});
	}
}


// 删除用户
function deleteElement() {
	var selectElements = $("#elementTables").bootstrapTable('getSelections');
	if (selectElements.length == 0) {
		var content = "请选择要删除的元素信息!";
		info(content);
	} else {
		var id = selectElements[0].id;
		BootstrapDialog.show({
			title : '提示',
			message :"本数据为基础数据十分重要，删除前请备份，您确定要删除吗？",
			buttons : [{
				icon : 'glyphicon glyphicon-check',
				label : '确定',
				cssClass : 'btn-primary',
				autospin : true,
				action:function(dialogRef){
					dialogRef.close();
					$.ajax({
						url : "../../../caseElement/deleteCaseElement",
						type : "post",
						data : {
							id : id
						},
						dataType : "json",
						success : function(data) {
							if (data.flag == 0) {
								success(data.content);
								queryBytableId('elementTables');
							} else {
								danger(data.errorInfo);
							}
						},
						error : function() {
							danger("元素信息删除失败!");
						}
					});
				}
			},{
				label : '取消',
				action : function(dialogRef) {
					dialogRef.close();
				}
			}]
		});
	}
}

//删除属性
function deleteAttribute(){
	var selectCases = $("#attributeTables").bootstrapTable('getSelections');
	if(selectCases.length<=0){
		warning('请选择要解绑的属性！');
		return;
	}
	var sendDataArray = [];
	for(var i = 0;i<selectCases.length;i++){
		var obj = new Object;
		obj.id = selectCases[i].id;
		sendDataArray.push(obj);
	}
	console.log(sendDataArray);
	
	BootstrapDialog.show({
		title : '提示',
		message : "您确定要解绑吗?",
		buttons : [ {
			icon : 'glyphicon glyphicon-check',
			label : '确定',
			cssClass : 'btn-primary',
			autospin : true,
			action : function(dialogRef) {
				dialogRef.close();
				$.ajax({
					url : "../../../caseElement/deleteElementAttributeRel",
					type : "post",
					data :{elementAttributeRel:JSON.stringify(sendDataArray)},
					dataType : "json",
					success : function(data) {
						if (data.flag == 0) {
							success(data.content);
							$("#attributeTables").bootstrapTable('refresh');
						} else {
							warning(data.errorInfo);
						}
					},
					error : function() {
						danger(data.errorInfo);
					}
				});
			}
		}, {
			label : '取消',
			action : function(dialogRef) {
				dialogRef.close();
			}
		} ]
	});
}
